// 引入创建的静态组件
import MyToast from "./index.vue";

// 定义弹出组件的函数 接收 2个参数
// mes 显示的文本或者是html片段
// duration 显示时间
let registryToast = {};
registryToast.install = Vue => {
  let timer;
  // 返回一个 扩展实例的构造器
  const toast = Vue.extend(MyToast);

  // 实例化一个 toast.vue
  let toastDom = new toast();
  const el = toastDom.$mount().$el;
  // 将实例化 toast 挂载到 body 上
  document.body.appendChild(el);
  Vue.prototype.$toast = {
    show(options) {
      if (typeof options === "string") {
        toastDom.mes = options;
      } else if (typeof options === "object") {
        Object.assign(toastDom, options);
      }
      clearTimeout(timer);
      toastDom.isShow = true;
      timer = setTimeout(() => {
        toastDom.isShow = false;
      }, toastDom.time);
    }
  };
};

// 注册为全局组件
export default registryToast;
